The present application relates to serverless computing platforms. In a serverless computing platform, a user provides computer-readable instructions to be executed to the platform, and the platform manages selecting and provisioning a virtual machine or container on which to execute the code. Then, where the user is to be charged, the user is generally charged for the computing resources used to execute the instructions, and not for executing the virtual machine in which the instructions are executed, for example.
A container may generally differ from a virtual machine in that a container omits a guest operating system (or, rather, each container on a physical server shares one guest operating system that is external to those containers), whereas a virtual machine generally includes a guest operating system. This different architecture may enable a container to be started more quickly and operate using less computing resources, like RAM (random access memory), than a corresponding virtual machine. A container generally comprises a file system and other functions to execute code—a runtime environment, system tools, and system libraries. Then, a user's computer-executable instructions may be executed within a container using these aspects of that container.
Serverless computing may be thought of as a misnomer. The term does not indicate that no computer servers are used in the platform. Rather, the term indicates that a user of the serverless computing platform does not need to provision or manage the physical computer servers, virtual machines, containers, and the like, that are used by the platform in executing the user's instructions.